$(document).ready(function(){
	$("#alertGracias").hide();
    $("#botonDescargar").click(onClickBotonDescargar);
    $("#enlaceDescarga").click(descargarAPK);
    $("#email").keyup(esMailCorrecto);
    $("#nombre").keyup(esNombreCorrecto);
});

function onClickBotonDescargar(){

	if(!$("#terminos").is(':checked')){
		$('#grupoTerminos').popover('show');
	}else{
		$('#grupoTerminos').popover('hide');
	}
	
	if(esNombreCorrecto() & esMailCorrecto() & $("#terminos").is(':checked')){
		$("#botonDescargar").button('loading');
		obtenerInformacionClienteEnviarForm();		
	}
}

function enviarForm (datosCliente) {
	camposEnvio = {};
	camposEnvio.nombre = $("#nombre").val();
	camposEnvio.email = $("#email").val();
	camposEnvio.ip = datosCliente.ip;
	console.log(datosCliente);

	console.log(camposEnvio);
	// JSON.stringfy(obj) transforma un objeto a una cadena de texto
	// JSON.parse(cadena) transforma una cadena en un objeto
	// Realizamos la peticion POST con el JSON de parametro
	$.post("./registrarUsuario.php", {parametrosForm: JSON.stringify(camposEnvio)}, callbackPostDescargarExito).fail(failPostRegistrar);
}

function obtenerInformacionClienteEnviarForm(){
	// Hacemos una peticion del json de la información del usuario
	$.get("http://jsonip.com", enviarForm).fail(failPedirIPCliente);
}

function failPedirIPCliente(){
	//alert("Fail");
	datosCliente = {}
	datosCliente.ip = "ip-error";
	enviarForm(datosCliente);
}

function callbackPostDescargarExito(data) {
	$("#botonDescargar").button('reset');
	$("#enlaceDescarga").trigger("click");
	$("#alertGracias").show();
	console.log(data);
}

function failPostRegistrar(){
	console.log("fallo envio servidor");
}

/* Funcion de descarga de la apk, la utilizaremos para descargar la referencia de <a>*/
function descargarAPK(e){
	e.preventDefault();
	window.location.href = this.href;
}

function esMailCorrecto(){
	email = $("#email").val();
	if(!validarEmail(email)){
		$("#grupoEmail").addClass("has-error");
		$("#grupoEmail").popover('show');
		return false;
	}else{
		$("#grupoEmail").removeClass("has-error");
		$("#grupoEmail").popover('hide');
		return true;
	}
}

function esNombreCorrecto(){
	nombre = $("#nombre").val();
	if(nombre.length == 0){
		$("#grupoNombre").addClass("has-error");
		$("#grupoNombre").popover('show');
		return false;
	}else{
		$("#grupoNombre").removeClass("has-error");
		$("#grupoNombre").popover('hide');
		return true;
	}
}

function validarEmail(email){
	validar = new RegExp(/^((([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+(\.([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+)*)|((\x22)((((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(([\x01-\x08\x0b\x0c\x0e-\x1f\x7f]|\x21|[\x23-\x5b]|[\x5d-\x7e]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(\\([\x01-\x09\x0b\x0c\x0d-\x7f]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]))))*(((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(\x22)))@((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?$/i);	
	if(validar.test(email)){
		return true;
	}else{
		return false;
	}
}
